﻿/** 
 *   Marcador: muestra puntos, puntuacion mas alta, vidas, y bonus
 *  
 *   @see Hardware Partida
 *   @author 1-DAI IES San Vicente 2010/11
 */
 
/* --------------------------------------------------         
   Versiones hasta la fecha:
   
   Num.   Fecha       Por / Cambios
   ---------------------------------------------------
   0.02  20-Ene-2011  Héctor Pastor
   					  Creada la clase marcador, de momento solo
   					  muestra en la parte superior las palabras
   					  "1UP" y "HIGH SCORE"
   
   0.03  20-Ene-2011  Héctor Pastor
   					  Ahora tambien muestra las vidas y puntos,
   					  el bonus se muestra estatico en 5000, en
   					  espera de que se programe el decremento.
   					 
   0.04  24-Ene-2011  Héctor Pastor	
				 	  Añadida función para decrementar el bonus,
				 	  ahora se decrementara con el paso del tiempo.
				 	  Añadida función para reiniciar el bonus,
				 	  en caso de muerte o de partida nueva.
 ---------------------------------------------------- */
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework;

public class Marcador
{
    private ElemGrafico imgVidas, imgBonus;
    private int puntuacion;
    private int bonus = 5000;
    private int mejorPunt;
    private int vidas;
    Fuente fuente18;
    //SpriteFont fuente18;
    //ContentManager contenido;

    //private Partida miPartida;
    //Fuente tipoDeLetra;
    
    public void SetVidas( int valor )
    {
    	vidas = valor;
    }
    
    public int GetVidas()
    {
    	return vidas;
    }
    
    public void SetBonus( int valor )
    {
    	bonus = valor;
    }
    
    public int GetBonus()
    {
    	return bonus;
    }
    
    public Marcador(ContentManager c)
    {    
        //tipoDeLetra = new Fuente("FreeSansBold.ttf", 18);
        fuente18 = new Fuente("Lucida Console", c);
        imgVidas = new ElemGrafico("vida", c);
        imgBonus = new ElemGrafico("MarcadorBonus", c);
    }

    /// Devuelve el valor de la puntuación
    public  int GetPuntuacion()
    {
      return puntuacion;
    }


    /// Cambia el valor de la mejor puntuación
    public  void SetMejorPuntuacion(int valor)
    {
      mejorPunt = valor;
    }

    
    /// Cambia el valor de la puntuación
    public  void SetPuntuacion(int valor)
    {
      puntuacion = valor;
    }


    /// Incrementa el valor de la puntuación
    public  void IncrPuntuacion(int valor)
    {
      puntuacion += valor;
    }
	

    public  void DibujarOculta(SpriteBatch s)
    {
        //Fuente fuente18;
        //fuente18 = new Fuente("Lucida Console", contenido);
        // Carteles de puntos
        
        fuente18.EscribirTextoOculta("HIGH SCORE",
            326, 048, 255, 0, 0, s);
        fuente18.EscribirTextoOculta("000000",
            346, 064, 255, 255, 255, s);
        fuente18.EscribirTextoOculta("1UP",
            234, 048, 255, 0, 0, s);
        fuente18.EscribirTextoOculta(puntuacion.ToString("000000"),
            214, 064, 255, 255, 255, s);

     // Marcador Bonus
     imgBonus.DibujarOculta(512, 94, s);
     fuente18.EscribirTextoOculta(bonus.ToString("0000"), 
         540, 140, 0, 255, 0, s);
     
   	 // Vidas, como barra (maximo 10 segmentos)
  	 int vidasMostrar = vidas;
     if (vidasMostrar > 5) vidasMostrar = 5;
     for (int i = 0; i < vidasMostrar; i++)
  	 {
  		imgVidas.DibujarOculta(197 + 20*i, 95, s);
  	 }
      	
    }
     // Para reiniciar el bonus al empezar partida nueva
     public void Reiniciar()
     {
     	bonus = 5000;
     }
     
     // Para reducir el bonus cuando pase un tiempo
     public void ReducirBonus()
     {
     	if (bonus > 0) bonus -= 100;
     }
} /* end class Marcador */
